]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
appDisplay: Hide frequent view when app monitoring is disabled
authorFlorian Müllner <fmuellner@gnome.org>
Fri, 1 Mar 2013 23:46:34 +0000 (00:46 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Sat, 18 May 2013 18:12:49 +0000 (20:12 +0200)
Currently we stop monitoring application usage when disabling the
'enable-app-monitoring' setting, but we still expose previously
gathered data in the app picker's frequent view. This is not what
users should expect, so hide the view in that case.

https://bugzilla.gnome.org/show_bug.cgi?id=699714

js/ui/appDisplay.js

index afeecc17f20a2fd442623ad868a5aa9e6fda38a9..7ed76b8e49283b3ad5de903eed0bdf88b02b0032 100644 (file)
@@ -343,6 +343,8 @@ const AppDisplay = new Lang.Class({
         global.settings.connect('changed::app-folder-categories', Lang.bind(this, function() {
             Main.queueDeferredWork(this._allAppsWorkId);
         }));
+        global.settings.connect('changed::enable-app-monitoring',
+                                Lang.bind(this, this._updateFrequentVisibility));
 
         this._views = [];
 
@@ -386,6 +388,7 @@ const AppDisplay = new Lang.Class({
                 }));
         }
         this._showView(Views.FREQUENT);
+        this._updateFrequentVisibility();
 
         // We need a dummy actor to catch the keyboard focus if the
         // user Ctrl-Alt-Tabs here before the deferred work creates
@@ -415,6 +418,19 @@ const AppDisplay = new Lang.Class({
         }
     },
 
+    _updateFrequentVisibility: function() {
+        let enabled = global.settings.get_boolean('enable-app-monitoring');
+        this._views[Views.FREQUENT].control.visible = enabled;
+
+        let visibleViews = this._views.filter(function(v) {
+            return v.control.visible;
+        });
+        this._controls.visible = visibleViews.length > 1;
+
+        if (!enabled && this._views[Views.FREQUENT].view.actor.visible)
+            this._showView(Views.ALL);
+    },
+
     _redisplay: function() {
         this._redisplayFrequentApps();
         this._redisplayAllApps();